#include <ctype.h>
#include <libgen.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
#include <stdlib.h>  
#include <stdio.h>  
#include  <string.h>
#include <strings.h>
#include <limits.h>
#include <ctype.h>
#include "httpserver.h"
#include  <mimetype.h>


 
#ifndef _MAX_EXT
#define _MAX_EXT 256
#endif
#ifndef _MAX_DRIVE
#define _MAX_DRIVE 3
#endif


struct _context_item  http__context_type[_MIMETYPE_MAX] = {
	{ ".323", "text/h323" },
	{ ".3g2", "video/3gpp2" },
	{ ".3gp", "video/3gpp" },
	{ ".3gp2", "video/3gpp2" },
	{ ".3gpp", "video/3gpp" },
	{ ".7z", "application/x-7z-compressed" },
	{ ".aa", "audio/audible" },
	{ ".AAC", "audio/aac" },
	{ ".aaf", "application/octet-stream" },
	{ ".aax", "audio/vnd.audible.aax" },
	{ ".ac3", "audio/ac3" },
	{ ".aca", "application/octet-stream" },
	{ ".accda", "application/msaccess.addin" },
	{ ".accdb", "application/msaccess" },
	{ ".accdc", "application/msaccess.cab" },
	{ ".accde", "application/msaccess" },
	{ ".accdr", "application/msaccess.runtime" },
	{ ".accdt", "application/msaccess" },
	{ ".accdw", "application/msaccess.webapplication" },
	{ ".accft", "application/msaccess.ftemplate" },
	{ ".acx", "application/internet-property-stream" },
	{ ".AddIn", "text/xml" },
	{ ".ade", "application/msaccess" },
	{ ".adobebridge", "application/x-bridge-url" },
	{ ".adp", "application/msaccess" },
	{ ".ADT", "audio/vnd.dlna.adts" },
	{ ".ADTS", "audio/aac" },
	{ ".afm", "application/octet-stream" },
	{ ".ai", "application/postscript" },
	{ ".aif", "audio/x-aiff" },
	{ ".aifc", "audio/aiff" },
	{ ".aiff", "audio/aiff" },
	{ ".air", "application/vnd.adobe.air-application-installer-package+zip" },
	{ ".amc", "application/x-mpeg" },
	{ ".application", "application/x-ms-application" },
	{ ".art", "image/x-jg" },
	{ ".asa", "application/xml" },
	{ ".asax", "application/xml" },
	{ ".ascx", "application/xml" },
	{ ".asd", "application/octet-stream" },
	{ ".asf", "video/x-ms-asf" },
	{ ".ashx", "application/xml" },
	{ ".asi", "application/octet-stream" },
	{ ".asm", "text/plain" },
	{ ".asmx", "application/xml" },
	{ ".aspx", "application/xml" },
	{ ".asr", "video/x-ms-asf" },
	{ ".asx", "video/x-ms-asf" },
	{ ".atom", "application/atom+xml" },
	{ ".au", "audio/basic" },
	{ ".avi", "video/x-msvideo" },
	{ ".axs", "application/olescript" },
	{ ".bas", "text/plain" },
	{ ".bcpio", "application/x-bcpio" },
	{ ".bin", "application/octet-stream" },
	{ ".bmp", "image/bmp" },
	{ ".c", "text/plain" },
	{ ".cab", "application/octet-stream" },
	{ ".caf", "audio/x-caf" },
	{ ".calx", "application/vnd.ms-office.calx" },
	{ ".cat", "application/vnd.ms-pki.seccat" },
	{ ".cc", "text/plain" },
	{ ".cd", "text/plain" },
	{ ".cdda", "audio/aiff" },
	{ ".cdf", "application/x-cdf" },
	{ ".cer", "application/x-x509-ca-cert" },
	{ ".chm", "application/octet-stream" },
	{ ".class", "application/x-java-applet" },
	{ ".clp", "application/x-msclip" },
	{ ".cmx", "image/x-cmx" },
	{ ".cnf", "text/plain" },
	{ ".cod", "image/cis-cod" },
	{ ".config", "application/xml" },
	{ ".contact", "text/x-ms-contact" },
	{ ".coverage", "application/xml" },
	{ ".cpio", "application/x-cpio" },
	{ ".cpp", "text/plain" },
	{ ".crd", "application/x-mscardfile" },
	{ ".crl", "application/pkix-crl" },
	{ ".crt", "application/x-x509-ca-cert" },
	{ ".cs", "text/plain" },
	{ ".csdproj", "text/plain" },
	{ ".csh", "application/x-csh" },
	{ ".csproj", "text/plain" },
	{ ".css", "text/css" },
	{ ".csv", "text/csv" },
	{ ".cur", "application/octet-stream" },
	{ ".cxx", "text/plain" },
	{ ".dat", "application/octet-stream" },
	{ ".datasource", "application/xml" },
	{ ".dbproj", "text/plain" },
	{ ".dcr", "application/x-director" },
	{ ".def", "text/plain" },
	{ ".deploy", "application/octet-stream" },
	{ ".der", "application/x-x509-ca-cert" },
	{ ".dgml", "application/xml" },
	{ ".dib", "image/bmp" },
	{ ".dif", "video/x-dv" },
	{ ".dir", "application/x-director" },
	{ ".disco", "text/xml" },
	{ ".dll", "application/x-msdownload" },
	{ ".dll.config", "text/xml" },
	{ ".dlm", "text/dlm" },
	{ ".doc", "application/msword" },
	{ ".docm", "application/vnd.ms-word.document.macroEnabled.12" },
	{ ".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document" },
	{ ".dot", "application/msword" },
	{ ".dotm", "application/vnd.ms-word.template.macroEnabled.12" },
	{ ".dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template" },
	{ ".dsp", "application/octet-stream" },
	{ ".dsw", "text/plain" },
	{ ".dtd", "text/xml" },
	{ ".dtsConfig", "text/xml" },
	{ ".dv", "video/x-dv" },
	{ ".dvi", "application/x-dvi" },
	{ ".dwf", "drawing/x-dwf" },
	{ ".dwp", "application/octet-stream" },
	{ ".dxr", "application/x-director" },
	{ ".eml", "message/rfc822" },
	{ ".emz", "application/octet-stream" },
	{ ".eot", "application/octet-stream" },
	{ ".eps", "application/postscript" },
	{ ".etl", "application/etl" },
	{ ".etx", "text/x-setext" },
	{ ".evy", "application/envoy" },
	{ ".exe", "application/octet-stream" },
	{ ".exe.config", "text/xml" },
	{ ".fdf", "application/vnd.fdf" },
	{ ".fif", "application/fractals" },
	{ ".filters", "Application/xml" },
	{ ".fla", "application/octet-stream" },
	{ ".flr", "x-world/x-vrml" },
	{ ".flv", "video/x-flv" },
	{ ".fsscript", "application/fsharp-script" },
	{ ".fsx", "application/fsharp-script" },
	{ ".generictest", "application/xml" },
	{ ".gif", "image/gif" },
	{ ".group", "text/x-ms-group" },
	{ ".gsm", "audio/x-gsm" },
	{ ".gtar", "application/x-gtar" },
	{ ".gz", "application/x-gzip" },
	{ ".h", "text/plain" },
	{ ".hdf", "application/x-hdf" },
	{ ".hdml", "text/x-hdml" },
	{ ".hhc", "application/x-oleobject" },
	{ ".hhk", "application/octet-stream" },
	{ ".hhp", "application/octet-stream" },
	{ ".hlp", "application/winhlp" },
	{ ".hpp", "text/plain" },
	{ ".hqx", "application/mac-binhex40" },
	{ ".hta", "application/hta" },
	{ ".htc", "text/x-component" },
	{ ".htm", "text/html" },
	{ ".html", "text/html" },
	{ ".htt", "text/webviewhtml" },
	{ ".hxa", "application/xml" },
	{ ".hxc", "application/xml" },
	{ ".hxd", "application/octet-stream" },
	{ ".hxe", "application/xml" },
	{ ".hxf", "application/xml" },
	{ ".hxh", "application/octet-stream" },
	{ ".hxi", "application/octet-stream" },
	{ ".hxk", "application/xml" },
	{ ".hxq", "application/octet-stream" },
	{ ".hxr", "application/octet-stream" },
	{ ".hxs", "application/octet-stream" },
	{ ".hxt", "text/html" },
	{ ".hxv", "application/xml" },
	{ ".hxw", "application/octet-stream" },
	{ ".hxx", "text/plain" },
	{ ".i", "text/plain" },
	{ ".ico", "image/x-icon" },
	{ ".ics", "application/octet-stream" },
	{ ".idl", "text/plain" },
	{ ".ief", "image/ief" },
	{ ".iii", "application/x-iphone" },
	{ ".inc", "text/plain" },
	{ ".inf", "application/octet-stream" },
	{ ".inl", "text/plain" },
	{ ".ins", "application/x-internet-signup" },
	{ ".ipa", "application/x-itunes-ipa" },
	{ ".ipg", "application/x-itunes-ipg" },
	{ ".ipproj", "text/plain" },
	{ ".ipsw", "application/x-itunes-ipsw" },
	{ ".iqy", "text/x-ms-iqy" },
	{ ".isp", "application/x-internet-signup" },
	{ ".ite", "application/x-itunes-ite" },
	{ ".itlp", "application/x-itunes-itlp" },
	{ ".itms", "application/x-itunes-itms" },
	{ ".itpc", "application/x-itunes-itpc" },
	{ ".IVF", "video/x-ivf" },
	{ ".jar", "application/java-archive" },
	{ ".java", "application/octet-stream" },
	{ ".jck", "application/liquidmotion" },
	{ ".jcz", "application/liquidmotion" },
	{ ".jfif", "image/pjpeg" },
	{ ".jnlp", "application/x-java-jnlp-file" },
	{ ".jpb", "application/octet-stream" },
	{ ".jpe", "image/jpeg" },
	{ ".jpeg", "image/jpeg" },
	{ ".jpg", "image/jpeg" },
	{ ".js", "application/x-javascript" },
	{ ".jsx", "text/jscript" },
	{ ".jsxbin", "text/plain" },
	{ ".latex", "application/x-latex" },
	{ ".library-ms", "application/windows-library+xml" },
	{ ".lit", "application/x-ms-reader" },
	{ ".loadtest", "application/xml" },
	{ ".lpk", "application/octet-stream" },
	{ ".lsf", "video/x-la-asf" },
	{ ".lst", "text/plain" },
	{ ".lsx", "video/x-la-asf" },
	{ ".lzh", "application/octet-stream" },
	{ ".m13", "application/x-msmediaview" },
	{ ".m14", "application/x-msmediaview" },
	{ ".m1v", "video/mpeg" },
	{ ".m2t", "video/vnd.dlna.mpeg-tts" },
	{ ".m2ts", "video/vnd.dlna.mpeg-tts" },
	{ ".m2v", "video/mpeg" },
	{ ".m3u", "audio/x-mpegurl" },
	{ ".m3u8", "audio/x-mpegurl" },
	{ ".m4a", "audio/m4a" },
	{ ".m4b", "audio/m4b" },
	{ ".m4p", "audio/m4p" },
	{ ".m4r", "audio/x-m4r" },
	{ ".m4v", "video/x-m4v" },
	{ ".mac", "image/x-macpaint" },
	{ ".mak", "text/plain" },
	{ ".man", "application/x-troff-man" },
	{ ".manifest", "application/x-ms-manifest" },
	{ ".map", "text/plain" },
	{ ".master", "application/xml" },
	{ ".mda", "application/msaccess" },
	{ ".mdb", "application/x-msaccess" },
	{ ".mde", "application/msaccess" },
	{ ".mdp", "application/octet-stream" },
	{ ".me", "application/x-troff-me" },
	{ ".mfp", "application/x-shockwave-flash" },
	{ ".mht", "message/rfc822" },
	{ ".mhtml", "message/rfc822" },
	{ ".mid", "audio/mid" },
	{ ".midi", "audio/mid" },
	{ ".mix", "application/octet-stream" },
	{ ".mk", "text/plain" },
	{ ".mmf", "application/x-smaf" },
	{ ".mno", "text/xml" },
	{ ".mny", "application/x-msmoney" },
	{ ".mod", "video/mpeg" },
	{ ".mov", "video/quicktime" },
	{ ".movie", "video/x-sgi-movie" },
	{ ".mp2", "video/mpeg" },
	{ ".mp2v", "video/mpeg" },
	{ ".mp3", "audio/mpeg" },
	{ ".mp4", "video/mp4" },
	{ ".mp4v", "video/mp4" },
	{ ".mpa", "video/mpeg" },
	{ ".mpe", "video/mpeg" },
	{ ".mpeg", "video/mpeg" },
	{ ".mpf", "application/vnd.ms-mediapackage" },
	{ ".mpg", "video/mpeg" },
	{ ".mpp", "application/vnd.ms-project" },
	{ ".mpv2", "video/mpeg" },
	{ ".mqv", "video/quicktime" },
	{ ".ms", "application/x-troff-ms" },
	{ ".msi", "application/octet-stream" },
	{ ".mso", "application/octet-stream" },
	{ ".mts", "video/vnd.dlna.mpeg-tts" },
	{ ".mtx", "application/xml" },
	{ ".mvb", "application/x-msmediaview" },
	{ ".mvc", "application/x-miva-compiled" },
	{ ".mxp", "application/x-mmxp" },
	{ ".nc", "application/x-netcdf" },
	{ ".nsc", "video/x-ms-asf" },
	{ ".nws", "message/rfc822" },
	{ ".ocx", "application/octet-stream" },
	{ ".oda", "application/oda" },
	{ ".odc", "text/x-ms-odc" },
	{ ".odh", "text/plain" },
	{ ".odl", "text/plain" },
	{ ".odp", "application/vnd.oasis.opendocument.presentation" },
	{ ".ods", "application/oleobject" },
	{ ".odt", "application/vnd.oasis.opendocument.text" },
	{ ".one", "application/onenote" },
	{ ".onea", "application/onenote" },
	{ ".onepkg", "application/onenote" },
	{ ".onetmp", "application/onenote" },
	{ ".onetoc", "application/onenote" },
	{ ".onetoc2", "application/onenote" },
	{ ".orderedtest", "application/xml" },
	{ ".osdx", "application/opensearchdescription+xml" },
	{ ".p10", "application/pkcs10" },
	{ ".p12", "application/x-pkcs12" },
	{ ".p7b", "application/x-pkcs7-certificates" },
	{ ".p7c", "application/pkcs7-mime" },
	{ ".p7m", "application/pkcs7-mime" },
	{ ".p7r", "application/x-pkcs7-certreqresp" },
	{ ".p7s", "application/pkcs7-signature" },
	{ ".pbm", "image/x-portable-bitmap" },
	{ ".pcast", "application/x-podcast" },
	{ ".pct", "image/pict" },
	{ ".pcx", "application/octet-stream" },
	{ ".pcz", "application/octet-stream" },
	{ ".pdf", "application/pdf" },
	{ ".pfb", "application/octet-stream" },
	{ ".pfm", "application/octet-stream" },
	{ ".pfx", "application/x-pkcs12" },
	{ ".pgm", "image/x-portable-graymap" },
	{ ".pic", "image/pict" },
	{ ".pict", "image/pict" },
	{ ".pkgdef", "text/plain" },
	{ ".pkgundef", "text/plain" },
	{ ".pko", "application/vnd.ms-pki.pko" },
	{ ".pls", "audio/scpls" },
	{ ".pma", "application/x-perfmon" },
	{ ".pmc", "application/x-perfmon" },
	{ ".pml", "application/x-perfmon" },
	{ ".pmr", "application/x-perfmon" },
	{ ".pmw", "application/x-perfmon" },
	{ ".png", "image/png" },
	{ ".pnm", "image/x-portable-anymap" },
	{ ".pnt", "image/x-macpaint" },
	{ ".pntg", "image/x-macpaint" },
	{ ".pnz", "image/png" },
	{ ".pot", "application/vnd.ms-powerpoint" },
	{ ".potm", "application/vnd.ms-powerpoint.template.macroEnabled.12" },
	{ ".potx", "application/vnd.openxmlformats-officedocument.presentationml.template" },
	{ ".ppa", "application/vnd.ms-powerpoint" },
	{ ".ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12" },
	{ ".ppm", "image/x-portable-pixmap" },
	{ ".pps", "application/vnd.ms-powerpoint" },
	{ ".ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12" },
	{ ".ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow" },
	{ ".ppt", "application/vnd.ms-powerpoint" },
	{ ".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12" },
	{ ".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation" },
	{ ".prf", "application/pics-rules" },
	{ ".prm", "application/octet-stream" },
	{ ".prx", "application/octet-stream" },
	{ ".ps", "application/postscript" },
	{ ".psc1", "application/PowerShell" },
	{ ".psd", "application/octet-stream" },
	{ ".psess", "application/xml" },
	{ ".psm", "application/octet-stream" },
	{ ".psp", "application/octet-stream" },
	{ ".pub", "application/x-mspublisher" },
	{ ".pwz", "application/vnd.ms-powerpoint" },
	{ ".qht", "text/x-html-insertion" },
	{ ".qhtm", "text/x-html-insertion" },
	{ ".qt", "video/quicktime" },
	{ ".qti", "image/x-quicktime" },
	{ ".qtif", "image/x-quicktime" },
	{ ".qtl", "application/x-quicktimeplayer" },
	{ ".qxd", "application/octet-stream" },
	{ ".ra", "audio/x-pn-realaudio" },
	{ ".ram", "audio/x-pn-realaudio" },
	{ ".rar", "application/octet-stream" },
	{ ".ras", "image/x-cmu-raster" },
	{ ".rat", "application/rat-file" },
	{ ".rc", "text/plain" },
	{ ".rc2", "text/plain" },
	{ ".rct", "text/plain" },
	{ ".rdlc", "application/xml" },
	{ ".resx", "application/xml" },
	{ ".rf", "image/vnd.rn-realflash" },
	{ ".rgb", "image/x-rgb" },
	{ ".rgs", "text/plain" },
	{ ".rm", "application/vnd.rn-realmedia" },
	{ ".rmi", "audio/mid" },
	{ ".rmp", "application/vnd.rn-rn_music_package" },
	{ ".roff", "application/x-troff" },
	{ ".rpm", "audio/x-pn-realaudio-plugin" },
	{ ".rqy", "text/x-ms-rqy" },
	{ ".rtf", "application/rtf" },
	{ ".rtx", "text/richtext" },
	{ ".ruleset", "application/xml" },
	{ ".s", "text/plain" },
	{ ".safariextz", "application/x-safari-safariextz" },
	{ ".scd", "application/x-msschedule" },
	{ ".sct", "text/scriptlet" },
	{ ".sd2", "audio/x-sd2" },
	{ ".sdp", "application/sdp" },
	{ ".sea", "application/octet-stream" },
	{ ".searchConnector-ms", "application/windows-search-connector+xml" },
	{ ".setpay", "application/set-payment-initiation" },
	{ ".setreg", "application/set-registration-initiation" },
	{ ".settings", "application/xml" },
	{ ".sgimb", "application/x-sgimb" },
	{ ".sgml", "text/sgml" },
	{ ".sh", "application/x-sh" },
	{ ".shar", "application/x-shar" },
	{ ".shtml", "text/html" },
	{ ".sit", "application/x-stuffit" },
	{ ".sitemap", "application/xml" },
	{ ".skin", "application/xml" },
	{ ".sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12" },
	{ ".sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide" },
	{ ".slk", "application/vnd.ms-excel" },
	{ ".sln", "text/plain" },
	{ ".slupkg-ms", "application/x-ms-license" },
	{ ".smd", "audio/x-smd" },
	{ ".smi", "application/octet-stream" },
	{ ".smx", "audio/x-smd" },
	{ ".smz", "audio/x-smd" },
	{ ".snd", "audio/basic" },
	{ ".snippet", "application/xml" },
	{ ".snp", "application/octet-stream" },
	{ ".sol", "text/plain" },
	{ ".sor", "text/plain" },
	{ ".spc", "application/x-pkcs7-certificates" },
	{ ".spl", "application/futuresplash" },
	{ ".src", "application/x-wais-source" },
	{ ".srf", "text/plain" },
	{ ".SSISDeploymentManifest", "text/xml" },
	{ ".ssm", "application/streamingmedia" },
	{ ".sst", "application/vnd.ms-pki.certstore" },
	{ ".stl", "application/vnd.ms-pki.stl" },
	{ ".sv4cpio", "application/x-sv4cpio" },
	{ ".sv4crc", "application/x-sv4crc" },
	{ ".svc", "application/xml" },
	{ ".swf", "application/x-shockwave-flash" },
	{ ".t", "application/x-troff" },
	{ ".tar", "application/x-tar" },
	{ ".tcl", "application/x-tcl" },
	{ ".testrunconfig", "application/xml" },
	{ ".testsettings", "application/xml" },
	{ ".tex", "application/x-tex" },
	{ ".texi", "application/x-texinfo" },
	{ ".texinfo", "application/x-texinfo" },
	{ ".tgz", "application/x-compressed" },
	{ ".thmx", "application/vnd.ms-officetheme" },
	{ ".thn", "application/octet-stream" },
	{ ".tif", "image/tiff" },
	{ ".tiff", "image/tiff" },
	{ ".tlh", "text/plain" },
	{ ".tli", "text/plain" },
	{ ".toc", "application/octet-stream" },
	{ ".tr", "application/x-troff" },
	{ ".trm", "application/x-msterminal" },
	{ ".trx", "application/xml" },
	{ ".ts", "video/vnd.dlna.mpeg-tts" },
	{ ".tsv", "text/tab-separated-values" },
	{ ".ttf", "application/octet-stream" },
	{ ".tts", "video/vnd.dlna.mpeg-tts" },
	{ ".txt", "text/plain" },
	{ ".u32", "application/octet-stream" },
	{ ".uls", "text/iuls" },
	{ ".user", "text/plain" },
	{ ".ustar", "application/x-ustar" },
	{ ".vb", "text/plain" },
	{ ".vbdproj", "text/plain" },
	{ ".vbk", "video/mpeg" },
	{ ".vbproj", "text/plain" },
	{ ".vbs", "text/vbscript" },
	{ ".vcf", "text/x-vcard" },
	{ ".vcproj", "Application/xml" },
	{ ".vcs", "text/plain" },
	{ ".vcxproj", "Application/xml" },
	{ ".vddproj", "text/plain" },
	{ ".vdp", "text/plain" },
	{ ".vdproj", "text/plain" },
	{ ".vdx", "application/vnd.ms-visio.viewer" },
	{ ".vml", "text/xml" },
	{ ".vscontent", "application/xml" },
	{ ".vsct", "text/xml" },
	{ ".vsd", "application/vnd.visio" },
	{ ".vsi", "application/ms-vsi" },
	{ ".vsix", "application/vsix" },
	{ ".vsixlangpack", "text/xml" },
	{ ".vsixmanifest", "text/xml" },
	{ ".vsmdi", "application/xml" },
	{ ".vspscc", "text/plain" },
	{ ".vss", "application/vnd.visio" },
	{ ".vsscc", "text/plain" },
	{ ".vssettings", "text/xml" },
	{ ".vssscc", "text/plain" },
	{ ".vst", "application/vnd.visio" },
	{ ".vstemplate", "text/xml" },
	{ ".vsto", "application/x-ms-vsto" },
	{ ".vsw", "application/vnd.visio" },
	{ ".vsx", "application/vnd.visio" },
	{ ".vtx", "application/vnd.visio" },
	{ ".wav", "audio/wav" },
	{ ".wave", "audio/wav" },
	{ ".wax", "audio/x-ms-wax" },
	{ ".wbk", "application/msword" },
	{ ".wbmp", "image/vnd.wap.wbmp" },
	{ ".wcm", "application/vnd.ms-works" },
	{ ".wdb", "application/vnd.ms-works" },
	{ ".wdp", "image/vnd.ms-photo" },
	{ ".webarchive", "application/x-safari-webarchive" },
	{ ".webtest", "application/xml" },
	{ ".wiq", "application/xml" },
	{ ".wiz", "application/msword" },
	{ ".wks", "application/vnd.ms-works" },
	{ ".WLMP", "application/wlmoviemaker" },
	{ ".wlpginstall", "application/x-wlpg-detect" },
	{ ".wlpginstall3", "application/x-wlpg3-detect" },
	{ ".wm", "video/x-ms-wm" },
	{ ".wma", "audio/x-ms-wma" },
	{ ".wmd", "application/x-ms-wmd" },
	{ ".wmf", "application/x-msmetafile" },
	{ ".wml", "text/vnd.wap.wml" },
	{ ".wmlc", "application/vnd.wap.wmlc" },
	{ ".wmls", "text/vnd.wap.wmlscript" },
	{ ".wmlsc", "application/vnd.wap.wmlscriptc" },
	{ ".wmp", "video/x-ms-wmp" },
	{ ".wmv", "video/x-ms-wmv" },
	{ ".wmx", "video/x-ms-wmx" },
	{ ".wmz", "application/x-ms-wmz" },
	{ ".wpl", "application/vnd.ms-wpl" },
	{ ".wps", "application/vnd.ms-works" },
	{ ".wri", "application/x-mswrite" },
	{ ".wrl", "x-world/x-vrml" },
	{ ".wrz", "x-world/x-vrml" },
	{ ".wsc", "text/scriptlet" },
	{ ".wsdl", "text/xml" },
	{ ".wvx", "video/x-ms-wvx" },
	{ ".x", "application/directx" },
	{ ".xaf", "x-world/x-vrml" },
	{ ".xaml", "application/xaml+xml" },
	{ ".xap", "application/x-silverlight-app" },
	{ ".xbap", "application/x-ms-xbap" },
	{ ".xbm", "image/x-xbitmap" },
	{ ".xdr", "text/plain" },
	{ ".xht", "application/xhtml+xml" },
	{ ".xhtml", "application/xhtml+xml" },
	{ ".xla", "application/vnd.ms-excel" },
	{ ".xlam", "application/vnd.ms-excel.addin.macroEnabled.12" },
	{ ".xlc", "application/vnd.ms-excel" },
	{ ".xld", "application/vnd.ms-excel" },
	{ ".xlk", "application/vnd.ms-excel" },
	{ ".xll", "application/vnd.ms-excel" },
	{ ".xlm", "application/vnd.ms-excel" },
	{ ".xls", "application/vnd.ms-excel" },
	{ ".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12" },
	{ ".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12" },
	{ ".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" },
	{ ".xlt", "application/vnd.ms-excel" },
	{ ".xltm", "application/vnd.ms-excel.template.macroEnabled.12" },
	{ ".xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template" },
	{ ".xlw", "application/vnd.ms-excel" },
	{ ".xml", "text/xml" },
	{ ".xmta", "application/xml" },
	{ ".xof", "x-world/x-vrml" },
	{ ".XOML", "text/plain" },
	{ ".xpm", "image/x-xpixmap" },
	{ ".xps", "application/vnd.ms-xpsdocument" },
	{ ".xrm-ms", "text/xml" },
	{ ".xsc", "application/xml" },
	{ ".xsd", "text/xml" },
	{ ".xsf", "text/xml" },
	{ ".xsl", "text/xml" },
	{ ".xslt", "text/xml" },
	{ ".xsn", "application/octet-stream" },
	{ ".xss", "application/xml" },
	{ ".xtp", "application/octet-stream" },
	{ ".xwd", "image/x-xwindowdump" },
	{ ".z", "application/x-compress" },
	{ ".zip", "application/x-zip-compressed" }
};

#define SLASH_STR "\\"
#define SLASH_CHAR '\\'

void _splitpath(const char *path,
	char *drive,
	char *dir,
	char *fname,
	char *ext)
{
	if (*path && *(path + 1) == ':')
	{
		*drive = toupper(*path);
		path += 2;
	}
	else
		*drive = 0;

	char *slash = strrchr(path, SLASH_CHAR);
	if (!slash)
		slash = strrchr(path, '/');
	char *dot = strrchr(path, '.');
	if (dot && slash && dot < slash)
		dot = NULL;

	if (!slash)
	{
		if (*drive)
			strcpy(dir, "\\");
		else
			strcpy(dir, "");
		strcpy(fname, path);
		if (dot)
		{
			*(fname + (dot - path)) = 0;
			strcpy(ext, dot + 1);
		}
		else
			strcpy(ext, "");
	}
	else
	{
		if (*drive && *path != '\\')
		{
			strcpy(dir, "\\");
			strcat(dir, path);
			*(dir + (slash - path) + 1) = 0;
		}
		else
		{
			strcpy(dir, path);
			if (slash - path == 0)
				*(dir + 1) = 0;
			else
				*(dir + (slash - path)) = 0;
		}

		strcpy(fname, slash + 1);
		if (dot)
		{
			*(fname + (dot - slash) - 1) = 0;
			strcpy(ext, dot + 1);
		}
		else
			strcpy(ext, "");
	}
}
int  http_response_mimetype(struct http_response_s* response, char* filename)
{
	char drive[255];  
	char dir[255];  
	char fname[255];  
	char ext[255];  
	int ret = -1;
	_splitpath(filename, drive, dir, fname, ext);  
	echo_mimer("File:%s drive:%s  dir:%s fname:%s ext:%s", filename, drive, dir, fname, ext);
	for (int i = 0; i < _MIMETYPE_MAX; i++)
	{
		if (strcmp((char*)&http__context_type[i].extname[1], ext) == 0)
		{
			http_response_header(response, "Content-Type", http__context_type[i]._type);
			ret = i;
			echo_mimer("File:%s ext:%s %d", filename, ext,i);
			break;
		}
	}
	if (ret == -1)
	{
		http_response_header(response, "Content-Type", "application/octet-stream");
	}
	return ret;
}